#pragma once
#include <SFML/Graphics/Texture.hpp>
#include <SFML/Graphics/Shape.hpp>
#include <nice2d/predef.h>
#include <nice2d/serializer.h>

class Background : public Serializer
{
    DECLARE_OBJECT(Background)
public:
    static BackgroundPointer create(const sf::Color &color);
    static BackgroundPointer create(const std::string &file, bool smooth,
                                    const sf::IntRect &area = sf::IntRect());
public:  
    virtual void applyBackground(sf::Shape &shape) = 0;
};

